#include "kshapefactory.h"

#include "kellipseshape.h"
#include "kfreehandshape.h"
#include "klineshape.h"
#include "kmouseshape.h"
#include "krectshape.h"
#include "kstarshape.h"
#include "ktextshape.h"
#include "kpentagonshape.h"
#include "krhombusshape.h"
#include "kcloudshape.h"
#include "kheartshape.h"
#include "khexagonshape.h"

KExportShape* KShapeFactory::createShape(KShapeType shapetype)
{
    switch (shapetype)
    {
    case KShapeType::MouseShapeType:
        return new KMouseShape();
    case KShapeType::FreeHandShapeType:
        return new KFreeHandShape();
    case KShapeType::LineShapeType:
        return new KLineShape();
    case KShapeType::RectShapeType:
        return new KRectShape();
    case KShapeType::EllipseShapeType:
        return new KEllipseShape();
    case KShapeType::StarShapeType:
        return new KStarShape();
    case KShapeType::TextShapeType:
        return new KTextShape();
    case KShapeType::PentagonShapeType:
        return new KPentagonShape();
    case KShapeType::RhombusShapeType:
        return new KRhombusShape();
    case KShapeType::CloudShapeType:
        return new KCloudShape();
    case KShapeType::HeartShapeType:
        return new KHeartShape();
    case KShapeType::HexagonShapeType:
        return new KHexagonShape();
    default:
        break;
    }
    return nullptr;
}
